package com.hj.excel.annotation;

import com.hj.excel.enums.ExcelVersion;

import java.lang.annotation.*;

/**
 * @author hj
 * @Date 2022/1/4
 * @Description: 导出标记
 */
@Target(value = ElementType.TYPE)
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface ExcelExport {

    /**
     * excel版本
     *
     * @return 默认2007版本
     */
    ExcelVersion version() default ExcelVersion.EXCEL2007;

    /**
     * 最顶部的标题行高度,有title才生效
     *
     * @return short
     */
    short titleRowHeight() default 40;

    /**
     * 头部标题行高度,以像素为单位
     *
     * @return short
     */
    short headRowHeight() default 30;

    /**
     * 内容行高度,以像素为单位
     *
     * @return short
     */
    short bodyRowHeight() default 25;

    /**
     * 是否自动宽度
     *
     * @return true
     */
    boolean autoWidth() default true;

    /**
     * 一个sheet页的最大记录数,默认不限制,2003版本限制6000行
     *
     * @return row
     */
    int sheetMaxRow() default -1;

    /**
     * 是否使用 new SXSSFWorkbook(rowAccessWindowSize) 快速导出 Excel
     *
     * @return true
     */
    boolean fastModel() default true;

    /**
     * rowAccessWindowSize 数量，根据内存大小来确定
     *
     * @return 数量
     */
    int rowAccessWindowSize() default 1000;

}
